<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Categoria extends CI_Controller {

	function __construct()
	{
            parent::__construct();
            $this->load->database();
            $this->load->library('form_validation');
            $this->load->library('ion_auth');		
            $this->load->library('twig'); // load the Twig library
            $this->twig->add_function('base_url'); // map the base_url() function as a Twig function
            $this->load->helper('url');
            $this->load->helper('language');
	}
        
        public function _example_output($output = null) 
        {
            $arrayData = Array('title' => 'Categorias',
                               'is_login' => FALSE,
                               'is_admin' => $this->ion_auth->is_admin(),
                               'item_active' => 3,
                               'user' => $this->ion_auth->user()->row(),
                               'output' => $output->output, 
                               'css_files' => $output->css_files, 
                               'js_files' => $output->js_files,
                               'js_lib_files' => $output->js_lib_files,
                               'js_config_files' => $output->js_config_files,
            );
            $this->twig->display('categoria/index.html.twig', $arrayData);
        } 
        
        public function listar()
	{
		try{
                        //*Creamos el objeto*/
			$crud = new grocery_CRUD();
                        //*Seleccionamos el tema*/
			$crud->set_theme('datatables');
                        //*Seleccionamos el nombre de la tabla de nuestra base de datos*/
			$crud->set_table('categorias');
                        //*Le asignamos un nombre*/
			$crud->set_subject('Categorias de cancha');
                        //*Asignamos el idioma español*/
                        $crud->set_language('spanish');
                        //*Aqui le decimos a grocery que estos campos son obligatorios*/
                        $crud->required_fields(
                                 'nombre');
                        //*Aqui le indicamos que campos deseamos mostrar*/
                        $crud->columns(
                                'nombre');
                        //*Se modifican los campos de las tablas DB*/
                        $crud->display_as('nombre','Nombre');
                        //*Se relacionan las tablas */
                        //$crud->set_relation('CodPresentacion','presentacion','Presentacion');
                        //*Deshabilita la opcion Imprimir y exportar*/
                        $crud->unset_print();
                        $crud->unset_export();
                        //llama a una funcion antes de guardar en la base de datos
                        $crud->callback_before_upload(array($this,'_check_categoria'));
                        
			$output = $crud->render();                      
			$this->_example_output($output);
                        
		}catch(Exception $e){
			show_error($e->getMessage().' --- '.$e->getTraceAsString());
		}
	}  
        
        /**
	 * Chequea si exite categoria
	 *
	 * @return bool
	 **/
	public function _check_categoria($post_array)
	{           
            if($this->db->where('nombre', $post_array['nombre'])->count_all_results('categorias') > 0 ) {
                return 'La categoria ya existe';
            }else {
                return TRUE;
            }
	}
}